#ifndef KEY_H
#define KEY_H

#include <stdlib.h>

class Key
{
private:
    int n;
    long long int *C;
public:
    char *Comb;
    Key();
    Key(char x);
    Key(const Key &K);
    ~Key();

    int getN() const {return n;}
    long long int getCombination() const {return *C;}

    void setCombination(long long int New_Comb){*C = New_Comb;}
    //friend void setEleement(int i, char E){Comb[i] = E;}
    //friend char getElement(int i) {return Comb[i];}

    void sort();

    Key operator = (Key K);
    Key operator + (Key K);
    Key operator += (Key K);
    Key operator - (Key K);
    Key operator -= (Key K);
    int operator == (Key K);
    int operator != (Key K);
    int operator > (Key K);
};

const Key Key_UP(38);
const Key Key_LEFT(37);
const Key Key_DOWN(40);
const Key Key_RIGHT(39);
const Key Key_Q(81);
const Key Key_W(87);
const Key Key_E(69);
const Key Key_R(82);
const Key Key_T(84);
const Key Key_Y(89);
const Key Key_U(85);
const Key Key_I(73);
const Key Key_O(79);
const Key Key_P(80);
const Key Key_A(65);
const Key Key_S(83);
const Key Key_D(68);
const Key Key_F(70);
const Key Key_G(71);
const Key Key_H(72);
const Key Key_J(74);
const Key Key_K(75);
const Key Key_L(76);
const Key Key_Z(90);
const Key Key_X(88);
const Key Key_C(67);
const Key Key_V(86);
const Key Key_B(66);
const Key Key_N(78);
const Key Key_M(77);
const Key Key_LBRACKET(219);
const Key Key_RBRACKET(221);
const Key Key_COLON(186);
const Key Key_QUOTES(222);
const Key Key_SLASHES(220);
const Key Key_LESS(188);
const Key Key_MORE(190);
const Key Key_QUESTION(191);
const Key Key_1(49);
const Key Key_2(50);
const Key Key_3(51);
const Key Key_4(52);
const Key Key_5(53);
const Key Key_6(54);
const Key Key_7(55);
const Key Key_8(56);
const Key Key_9(57);
const Key Key_0(48);
const Key Key_ENTER(13);
const Key Key_BACKSPACE(8);
const Key Key_ESCAPE(27);
const Key Key_TAB(9);
const Key Key_CAPSLOCK(20);
const Key Key_SHIFT(16);
const Key Key_CTRL(17);
const Key Key_ALT(18);
const Key Key_FN(255);
const Key Key_WINDOWS(91);
const Key Key_NUMLOCK(144);
const Key Key_DELETE(46);
const Key Key_HOME(36);
const Key Key_PAGEUP(33);
const Key Key_PAGEDOWN(34);
const Key Key_INSERT(45);
const Key Key_PRINTSCREEN(44);
const Key Key_MINUS(189);
const Key Key_PLUS(187);
const Key Key_NLMINUS(109);
const Key Key_NLPLUS(107);
const Key Key_NLMULTIPLICATE(106);
const Key Key_NLDEVISION(111);
const Key Key_CONSOLE(192);
const Key Key_COMAND(189);
const Key Key_F1(112);
const Key Key_F2(113);
const Key Key_F3(134);
const Key Key_F4(115);
const Key Key_F5(116);
const Key Key_F6(117);
const Key Key_F7(118);
const Key Key_F8(119);
const Key Key_F9(120);
const Key Key_F10(121);

#endif // KEY_H
